package com.bird.设计模式.行为型.责任链模式.流程审批功能;

/**
 * @data 2022/10/3 11:45
 * @author: bird
 * @description: approver: 视频上线的批准者。
 * <p>
 * <解释>
 * 在责任链模式中：approver的角色：其实就是抽象处理者，它里面包含两个方法
 * 一个是处理请求的方法，一个是将请求转发下一个节点的方法。
 * <p>
 * </解释>
 */
public abstract class Approver {

    /**
     * 这个属性是责任链的核心，即这个抽象处理者类包含一个自己。(即下一个处理者)。包含和自己同样类型的一个对象。使用this的时候 不一定和approver2相等
     * <p>
     * 责链模式中的的批
     * 准者，里面要声明一个自己类型的批准者。(在链条中，每个节点都包含两个功能 其一是获取请求者，其二：指向下一个节点的指针)。
     */


    protected Approver approver2;

    /**
     * 方法二：设置当前批准者的下一个批准者(节点)。
     */
    public void setNextApprover(Approver approver) {
        this.approver2 = approver;
    }


    /**
     * 方法一：处理这个请求的方法。发布课程。
     */
    public abstract void deploy(Course course);


}
